//
//  ViewController.swift
//  swiftjs
//
//  Created by 周光跃 on 2017/3/25.
//  Copyright © 2017年 www.miw.cn. All rights reserved.
//

import UIKit
import WebViewJavascriptBridge
import SwiftyJSON

class ViewController: UIViewController {

    @IBOutlet weak var webView: UIWebView!
    
    private var bridge : WebViewJavascriptBridge!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //初始化bridge并注册供js调用的方法
        bridge = WebViewJavascriptBridge(forWebView: webView)
        bridge.registerHandler("fromJS", handler: fromJS)
        
        //让webView加载网页
        let request = URLRequest(url: Bundle.main.url(forResource: "html/index", withExtension: "html")!)
        webView.loadRequest(request)

    }

    //调用无参的js方法
    @IBAction func callJS(_ sender: Any) {
        bridge.callHandler("fromSwift")
    }
    //传递参数给js方法
    @IBAction func callJS2(_ sender: Any) {
        bridge.callHandler("fromSwift",data: [10,"20x"])
    }
    //传递参数并要求js回调并带回js处理的结果
    @IBAction func callJS3(_ sender: Any) {
        bridge.callHandler("fromSwift",data: ["name":"赵钱孙","id":1,"data":["json":"json的数据"]]) { (data) in
            print(data ?? "没有值回来")
        }
    }

    //供js调用的方法
    func fromJS(data: Any?, cb: WVJBResponseCallback?){
        print("======我被js调用了===========")
        if let data = data {
            let json = JSON(data)
            print("调用传递的参数为\r\n\(json)")
            cb?("js调用swift成功,传过来的参数name值为:\r\n\(json["name"])")
        }
        print("======我被js调用了==结束======")
    }
}

